/*************************************************************************
 ********************************* 全局方法 *******************************
 *************************************************************************/

import Vue from "vue";

let vm     = new Vue();
let utils  = {};

utils.install = function (Vue, options) {

    /**
     * 日期格式化
     * @param     fmt   "YYYY-mm-dd HH:MM"
     * @param     date
     * @returns   {*}
     */
    Vue.prototype.formatDate = function (fmt, date) {
        let ret;
        const opt = {
            "Y+": date.getFullYear().toString(),        // 年
            "m+": (date.getMonth() + 1).toString(),     // 月
            "d+": date.getDate().toString(),            // 日
            "H+": date.getHours().toString(),           // 时
            "M+": date.getMinutes().toString(),         // 分
            "S+": date.getSeconds().toString()          // 秒
            // 有其他格式化字符需求可以继续添加，必须转化成字符串
        };

        for (let k in opt) {
            ret = new RegExp("(" + k + ")").exec(fmt);
            if (ret) {
                fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
            }
        }
        return fmt;
    };

    /**
     * 数据千分位格式化
     * @param   value
     * @return {string}
     */
    Vue.prototype.formatData = function( value ) {
        if( value === '' ) return 0;

        if( !value ) return 0;

        value += '';

        if( !value.includes('.') ) {
            value += '.'
        }

        return value.replace(/(\d)(?=(\d{3})+\.)/g, function($0, $1) {
            return $1 + ',';
        }).replace(/\.$/, '');
    };

    /**
     * 数据排序
     * @param a
     * @param b
     * @return {number}
     */
    Vue.prototype.sortData = function(a, b) {
        return b.overload - a.overload;
    };

    /**
     * 获取几天前日期
     */
    Vue.prototype.getBeforeDays = function(n){
        var day1 = new Date();
        day1.setTime(day1.getTime()-24*60*60*1000*parseInt(n));
        var moth=day1.getMonth()+1;
        if(moth<10){
            moth='0'+moth
        }
        var day=day1.getDate();
        if(day<10){
            day='0'+day;
        }
        var s1 = day1.getFullYear()+"-" + moth + "-" +day;
        return s1;
    };
};


export default utils;
